﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyManager.Business
{
    public interface ITaskDataManager
    {

        Task Create(Task task);

        Task Update(Task task);

        Task GetTaskById(string taskId);

        int Delete(string taskId);

        TaskCollection GetTasksByCategoryIds(System.Collections.Specialized.StringCollection categoryIds);

        TaskCollection GetTasksByDateRange(DateTime fromDate, DateTime toDate);

        TaskCollection GetTasksByStatus(TaskStatus status);

        //Tasks are considered InProgress by default if StartDate is a past date and DueDate is a Future date( this means the Task has been started already)
        TaskCollection GetInProgressTasks(DateTime dateTime);

        TaskCollection GetOverDueTasks(DateTime dateTime);
    }
}
